package org.itboys.trade.entity;

import java.util.Date;

import org.itboys.mongodb.entity.BaseLongIdEntity;

import org.mongodb.morphia.annotations.Entity;
import org.mongodb.morphia.annotations.Indexed;

/**
 * 订单实体对象
 * @author 伟哥
 *
 */
@Entity(value = "Order", noClassnameStored = true)
public class Order extends BaseLongIdEntity{

	private static final long serialVersionUID = -5899973200559262162L;
	
	@Indexed
	private String orderNo;//订单编号,唯一
	@Indexed
	private Long sellerId;//订单产生时关联的店铺id
	@Indexed
	private Long memberId;//会员ID
	private Integer status = 0;//OrderConstant.WAIT_SEND;// 订单状态
	private Date finishedTime;// 完成时间
	private int totalFee = 0;// 总价(各种商品金额相加后的总价) 以"分"为单位
	private int fee = 0;//优惠了金额   以"分"为单位
	private int expressFee = 0;// 物流费用金额   以"分"为单位
	private int totalMoney = 0;//总价（减去了优惠金额  + 邮费后的总价） 以"分"为单位
	private int expressAddFee = 0;// 偏远地区物流补贴费用 没有填0   以"分"为单位
	private String memo; // 订单备注
	private Long addressId;// 关联的联系地址或物流地址的ID
	private String mobile;// 手机号
	private String name;// 收货人姓名
	private String address;// 收货地址
	private String email;// 身份证号
	private Date payTime;// 付款时间
	private String express;// 哪个物流公司 关联数据字典表
	private String expressNo;// 物流单号 快递单号
	private Date sendTime;// 发货时间 datetime 发货时间
	private Date receiveTime;// 收货时间 datetime 收货时间
	private Date cancelTime;// 取消时间
	private String cancelReason;// 取消原因
	private String returnReason;// 退货理由
	
	public String getOrderNo() {
		return orderNo;
	}
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	public Long getSellerId() {
		return sellerId;
	}
	public void setSellerId(Long sellerId) {
		this.sellerId = sellerId;
	}
	public Long getMemberId() {
		return memberId;
	}
	public void setMemberId(Long memberId) {
		this.memberId = memberId;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public Date getFinishedTime() {
		return finishedTime;
	}
	public void setFinishedTime(Date finishedTime) {
		this.finishedTime = finishedTime;
	}
	public int getTotalFee() {
		return totalFee;
	}
	public void setTotalFee(int totalFee) {
		this.totalFee = totalFee;
	}
	public int getFee() {
		return fee;
	}
	public void setFee(int fee) {
		this.fee = fee;
	}
	public int getExpressFee() {
		return expressFee;
	}
	public void setExpressFee(int expressFee) {
		this.expressFee = expressFee;
	}
	public int getTotalMoney() {
		return totalMoney;
	}
	public void setTotalMoney(int totalMoney) {
		this.totalMoney = totalMoney;
	}
	public int getExpressAddFee() {
		return expressAddFee;
	}
	public void setExpressAddFee(int expressAddFee) {
		this.expressAddFee = expressAddFee;
	}
	public String getMemo() {
		return memo;
	}
	public void setMemo(String memo) {
		this.memo = memo;
	}
	public Long getAddressId() {
		return addressId;
	}
	public void setAddressId(Long addressId) {
		this.addressId = addressId;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Date getPayTime() {
		return payTime;
	}
	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}
	public String getExpress() {
		return express;
	}
	public void setExpress(String express) {
		this.express = express;
	}
	public String getExpressNo() {
		return expressNo;
	}
	public void setExpressNo(String expressNo) {
		this.expressNo = expressNo;
	}
	public Date getSendTime() {
		return sendTime;
	}
	public void setSendTime(Date sendTime) {
		this.sendTime = sendTime;
	}
	public Date getReceiveTime() {
		return receiveTime;
	}
	public void setReceiveTime(Date receiveTime) {
		this.receiveTime = receiveTime;
	}
	public Date getCancelTime() {
		return cancelTime;
	}
	public void setCancelTime(Date cancelTime) {
		this.cancelTime = cancelTime;
	}
	public String getCancelReason() {
		return cancelReason;
	}
	public void setCancelReason(String cancelReason) {
		this.cancelReason = cancelReason;
	}
	public String getReturnReason() {
		return returnReason;
	}
	public void setReturnReason(String returnReason) {
		this.returnReason = returnReason;
	}
	
}
